// pages/my/my.js
const app = getApp()
const common = require('../../utils/common.js')

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 用户信息
    isLogin: false,
    userInfo: {},
    defaultAvatar: 'https://images.unsplash.com/photo-1511367461989-f85a21fda167?w=100&h=100&fit=crop',
    
    // 统计数据
    stats: {
      services: 0,
      demands: 0,
      favorites: 0
    },
    
    // 其他状态
    isAuth: false,
    hasUnreadMessage: true,
    unreadCount: 3,
    cacheSize: '0.00MB'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('我的页面加载')
    this.loadUserInfo()
    this.loadStats()
    this.calculateCacheSize()
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 更新tabBar选中状态
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 3
      })
    }
    
    // 刷新数据
    this.loadUserInfo()
    this.loadStats()
  },

  /**
   * 加载用户信息（预留接口调用位置）
   */
  loadUserInfo() {
    // 从缓存获取用户信息
    const userInfo = common.getStorage('userInfo')
    const isLogin = app.globalData.isLogin || false
    
    if (userInfo && isLogin) {
      this.setData({
        isLogin: true,
        userInfo: userInfo
      })
    } else {
      this.setData({
        isLogin: false,
        userInfo: {}
      })
    }
    
    // TODO: 调用API接口获取最新用户信息
    // wx.request({
    //   url: app.globalData.apiBaseUrl + '/api/user/info',
    //   method: 'GET',
    //   success: (res) => {
    //     if (res.data.code === 200) {
    //       this.setData({
    //         userInfo: res.data.data,
    //         isAuth: res.data.data.isAuth
    //       })
    //       common.setStorage('userInfo', res.data.data)
    //     }
    //   }
    // })
  },

  /**
   * 加载统计数据（预留接口调用位置）
   */
  loadStats() {
    // TODO: 调用API接口获取统计数据
    // wx.request({
    //   url: app.globalData.apiBaseUrl + '/api/user/stats',
    //   method: 'GET',
    //   success: (res) => {
    //     if (res.data.code === 200) {
    //       this.setData({
    //         stats: res.data.data
    //       })
    //     }
    //   }
    // })
    
    // 使用静态数据
    this.setData({
      stats: {
        services: 0,
        demands: 0,
        favorites: 0
      }
    })
  },

  /**
   * 计算缓存大小
   */
  calculateCacheSize() {
    try {
      const info = wx.getStorageInfoSync()
      const size = (info.currentSize / 1024).toFixed(2) + 'MB'
      this.setData({ cacheSize: size })
    } catch (e) {
      console.error('获取缓存大小失败:', e)
    }
  },

  /**
   * 处理登录/查看个人资料
   */
  handleLogin() {
    if (this.data.isLogin) {
      // 已登录，跳转到个人资料页
      this.goToProfile()
    } else {
      // 未登录，调用登录
      this.doLogin()
    }
  },

  /**
   * 执行登录
   */
  doLogin() {
    app.getUserProfile().then(userInfo => {
      console.log('获取用户信息成功:', userInfo)
      
      // 调用后端登录接口
      app.login().then(code => {
        // TODO: 调用后端接口，传递 code 和 userInfo
        // wx.request({
        //   url: app.globalData.apiBaseUrl + '/api/user/login',
        //   method: 'POST',
        //   data: { code, userInfo },
        //   success: (res) => {
        //     if (res.data.code === 200) {
        //       app.globalData.isLogin = true
        //       this.setData({
        //         isLogin: true,
        //         userInfo: userInfo
        //       })
        //       common.showToast('登录成功', 'success')
        //     }
        //   }
        // })
        
        // 模拟登录成功
        app.globalData.isLogin = true
        this.setData({
          isLogin: true,
          userInfo: userInfo
        })
        common.showToast('登录成功', 'success')
      }).catch(err => {
        console.error('登录失败:', err)
        common.showToast('登录失败', 'error')
      })
    }).catch(err => {
      console.error('获取用户信息失败:', err)
      if (err.errMsg && err.errMsg.indexOf('cancel') !== -1) {
        common.showToast('已取消授权', 'none')
      } else {
        common.showToast('授权失败', 'error')
      }
    })
  },

  /**
   * 退出登录
   */
  handleLogout() {
    common.showModal('提示', '确定要退出登录吗？', true).then(confirm => {
      if (confirm) {
        // TODO: 调用后端退出登录接口
        
        // 清除登录状态
        app.globalData.isLogin = false
        app.globalData.userInfo = null
        common.removeStorage('userInfo')
        
        this.setData({
          isLogin: false,
          userInfo: {},
          stats: {
            services: 0,
            demands: 0,
            favorites: 0
          }
        })
        
        common.showToast('已退出登录', 'success')
      }
    })
  },

  /**
   * 跳转到个人资料
   */
  goToProfile() {
    common.navigateTo('/pages/profile/profile')
  },

  /**
   * 跳转到实名认证
   */
  goToAuth() {
    if (!this.data.isLogin) {
      common.showToast('请先登录', 'none')
      return
    }
    common.showToast('实名认证功能开发中...', 'none')
  },

  /**
   * 跳转到账号与安全
   */
  goToAccount() {
    if (!this.data.isLogin) {
      common.showToast('请先登录', 'none')
      return
    }
    common.showToast('账号安全功能开发中...', 'none')
  },

  /**
   * 跳转到我的发布
   */
  goToMyPosts() {
    if (!this.data.isLogin) {
      common.showToast('请先登录', 'none')
      return
    }
    common.navigateTo('/pages/my-posts/my-posts')
  },

  /**
   * 跳转到我的收藏
   */
  goToMyFavorites() {
    if (!this.data.isLogin) {
      common.showToast('请先登录', 'none')
      return
    }
    common.navigateTo('/pages/my-favorites/my-favorites')
  },

  /**
   * 跳转到消息中心
   */
  goToMessages() {
    common.navigateTo('/pages/messages/messages')
  },

  /**
   * 跳转到设置
   */
  goToSettings() {
    common.showToast('设置功能开发中...', 'none')
  },

  /**
   * 跳转到关于我们
   */
  goToAbout() {
    common.showToast('关于我们功能开发中...', 'none')
  },

  /**
   * 跳转到帮助中心
   */
  goToHelp() {
    common.showToast('帮助中心功能开发中...', 'none')
  },

  /**
   * 清理缓存
   */
  clearCache() {
    common.showModal('提示', '确定要清理缓存吗？', true).then(confirm => {
      if (confirm) {
        common.showLoading('清理中...')
        setTimeout(() => {
          // 保留用户信息，清除其他缓存
          const userInfo = common.getStorage('userInfo')
          wx.clearStorageSync()
          if (userInfo) {
            common.setStorage('userInfo', userInfo)
          }
          
          this.calculateCacheSize()
          common.hideLoading()
          common.showToast('清理完成', 'success')
        }, 1000)
      }
    })
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    console.log('下拉刷新')
    this.loadUserInfo()
    this.loadStats()
    setTimeout(() => {
      wx.stopPullDownRefresh()
    }, 1000)
  },

  /**
   * 分享
   */
  onShareAppMessage() {
    return {
      title: '壹加壹农业服务平台',
      path: '/pages/home/home',
      imageUrl: '/images/share.jpg'
    }
  },

  /**
   * 分享到朋友圈
   */
  onShareTimeline() {
    return {
      title: '壹加壹农业服务平台',
      query: '',
      imageUrl: '/images/share.jpg'
    }
  }
})

